System and method for defining control of a motorized exercise device

ABSTRACT

Aspects involve an exercise system in which various methods may be practiced. The exercise system facilitates a method of controlling an exercise on a motorized exercise device where the method involves, at a remote computing device, accessing an exercise template including fields associated with an exercise, obtaining a first exercise definition from matching the first exercise template with a first of a plurality of predefined exercises, and providing an exercise definition to a local device for controlling a motorized exercise device, the exercise definition based on matching the exercise template with a first of a plurality of predefined exercises, the exercise definition including a parameter associated with a resistance force that will be used to control a motor of the motorized exercise device when the first exercise is performed at the exercise device.

CROSS-REFERENCE TO RELATED APPLICATION

This application is related to and claims priority under 35 U.S.C. § 119(e) from U.S. Patent Application No. 63/279,628, filed Nov. 15, 2021, entitled “Daily Lift,” the entire contents of which is incorporated herein by reference for all purposes.

TECHNICAL FIELD

Aspects of the present invention are directed to exercise devices and particularly, in one example, to a method of generating a set of exercise definitions, which may be provided on a schedule, the exercise definitions including information for controlling a motor of a motorized resistance device.

BACKGROUND AND INTRODUCTION

The benefit of regular exercise is undisputed. Nonetheless, beginning and maintaining a successful exercise regimen is a challenge for many individuals for a variety of reasons. With busy schedules, simply finding the time to begin an exercise program is a challenge. Then, finding an exercise, or more preferably exercises, is a challenge when people have insufficient knowledge as to different types of exercises, the benefits of different exercise, and how to perform those exercises. Moreover, with time constraints and a lack of knowledge, it may be challenging to properly track and analyze performance and progress. As a result of any of these issues among others, there is an ongoing need to develop efficient exercise devices, and it is important to provide ways to easily perform exercises correctly and with an optimal resistance to maximize results during the limited time available.

It is with these observations in mind, among others, that aspects of the present disclosure were conceived.

SUMMARY

In one aspect of the present disclosure an exercise system in which various methods may be practiced. The exercise system facilitates a method of controlling an exercise on a motorized exercise device where the method involves, at a remote computing device and in response to receiving a request from a local device associated with a motorized exercise device, accessing a template with a first exercise template and a second exercise template, the first exercise template including a first plurality of fields associated with a first exercise, the second exercise template including a second plurality of fields associated with a second exercise. The method further involves generating a first exercise definition from matching the first exercise template with a plurality of predefined exercises stored in a remote storage and generating a second exercise definition from matching the second exercise template with the plurality of predefined exercises stored in the remote storage. The method then involves, the remote device, transmitting the first exercise definition and the second exercise definition to the local device, the first exercise definition including at least one parameter associated with a resistance force that will be used to control a motor of the motorized exercise device when the first exercise is performed on the motorized exercise device, the second exercise definition including at least one parameter associated with a resistance force that will be used to control the motor of the motorized exercise device when the second exercise is performed on the motorized exercise device.

In another aspect of the present disclosure, an exercise device comprises a motor controller in communication with an electric motor operably coupled with a cable to control a force required to retract the cable. The motor controller uses control instructions from a computing device, where the control instructions are of an exercise definition for an exercise. The exercise definition includes an instruction regarding a force required to extract the cable when performing the exercise. The control instructions are generated from an exercise template including a plurality of fields associated with the exercise and used to select the exercise definition. In various aspects, the plurality of fields of the exercise template includes an exercise type. The control instructions may include a starting position of the cable of the motorized device where the force is applied based on the starting position.

The computing device, which may be considered a local computing device, may be a mobile phone, computing pad, laptop, desktop, or a smart watch. The computing device may receive the control instructions of the exercise definition from a server by way of a network.

In another aspect of the present disclosure, a method may be performed at a local device (e.g., smart phone, etc.) associated with a motorized exercise device including an electric motor operably coupled with a cable to control a force required to retract the cable. The method may involve receiving a first exercise definition based on matching a first exercise template with one of a plurality of predefined exercises, where the first exercise definition includes at least one parameter associated with a first resistance force defined in the predefined exercise and that will be used to control the electric motor of the motorized exercise device when the first exercise is performed using the motorized exercise device.

The method may further involve receiving a second exercise definition from matching a second exercise template with a second of the plurality of predefined exercises. The second exercise template may include a second plurality of fields associated with a second exercise, where the second exercise definition includes at least one second parameter associated with a second resistance force that will be used to control the electric motor of the motorized exercise device when the second exercise is performed on the motorized exercise device.

In various embodiments, the first plurality of fields for the first exercise template includes a first exercise type field and the second plurality of fields for the second exercise template includes a second exercise type field, and the remote computing device selects a combination of templates including the first template and the second template to generate a set of exercises based on the first exercise type field and the second exercise type field. Such selections and related operations may be performed on some schedule—e.g., daily or otherwise—so that a user may receive a different set of exercise routines on whatever schedule.

In various aspects, the method may further involve providing the first exercise definition and the second exercise definition to the motorized exercise device, which may be done over whatever communication channel exists between the motorized exercise device and the computing device.

In some examples, the computing device may display performance data when the first exercise is performed on the motorized exercise device according to the first exercise definition. In some examples, the method may involve displaying a user interface whereby a user may enter a starting position used by the motorized device to control when the first resistance force is applied by the motor during the first exercise.

In various examples, the at least one first parameter may include a first starting position of the cable where the first resistance force of the electric motor is applied based on the first starting position. Similarly, in various examples, the at least one first parameter may include a first ending position of the cable, where the first resistance force is applied by the electric motor between the starting position and the ending position and wherein the at least one parameter further comprises a number of repetitions defining the number of times the motorized device will apply the first resistance force as a user executes the first exercise.

These and other aspects of the present disclosure are described in greater detail below with reference to the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

Example embodiments are illustrated in referenced figures of the drawings. It is intended that the embodiments and figures disclosed herein are to be considered illustrative rather than limiting.

FIG. 1 is a front perspective view of an exercise device according to the present disclosure.

FIG. 2 is a perspective view of the exercise device of FIG. 1 with a housing partially removed to illustrate internal components of the exercise device.

FIG. 3 is a diagram of an operating environment including the exercise device of FIG. 1 in which functions of the exercise device are supported by a user computing device and a remote fitness platform.

FIG. 4 is a diagram of a system for generating exercise definitions that control a motorized exercise device.

FIG. 5 is a diagram of the system of FIG. 4 .

FIG. 6 is a flowchart of a one method of controlling an exercise device according to the present disclosure.

FIG. 7 is an example of a template, which may be used to select from predefined exercise definitions to provide exercise controls to a requesting device, which may be useful in providing different and unique combinations of exercises on a daily or other basis.

FIG. 8 is an example of various possible exercise definitions.

FIG. 9 is an example computing system useful in various possible embodiments described herein.

DETAILED DESCRIPTION

Aspects of the present disclosure involve a system for generating and delivering exercise control instructions to a network connected exercise device. The system may generate a set of instructions daily although the frequency of instruction generation may vary and be sent in response to a request, generated and sent at other frequencies, and/or generated and sent on a schedule set by a user or instructor, etc. The system may also be used to generate tailored exercise plans for a user so, for example, a coach or other professional can create a tailored plan and the system automatically accesses exercises that will meet the plan and generates controls for the exercise device consistent with the exercises.

In one example, the exercise device includes a housing having a top through which a motor-driven cable extends. In certain implementations, the housing may have a form factor similar to that of a fitness step/step platform, a plyometric box, or other similar fitness equipment; however, and more generally, the housing may have any suitable shape, such as a prismatic shape, that facilitates the various use cases discussed in this disclosure. A user can equip the end of the cable with a grip, collar, belt, or similar component to facilitate performance of different exercises. During operation, the motor supplies resistance by counteracting extension of the cable by the user and/or controllably retracting the cable against the effort of the user. The system discussed herein generates instructions or information from which instructions may be generated, where the instructions define various control attributes of the motor for a variety of different exercises that may be facilitated by the exercise device. As such, the exercise device may include or be in communication with computing elements configured to provide information or instructions to control the motor, measure user performance, monitor system behaviors, and perform other similar functions.

The motor replaces or supplements weights, bands, and other resistance elements found in conventional exercise equipment. The motor may provide a controllable resistance force, which may be a constant resistance force and retraction rate. However, the motor can also be actively controlled to provide greater variety and flexibility as compared to conventional resistance weights. For example and among other things, the exercise device may control the motor to supply resistance that varies over a given range of motion (e.g., applying a different resistance during the concentric versus eccentric phase of an exercise or varying in response to some user feedback parameter such as extraction rate) or provides a constant resistance that eliminates inertial effects common with conventional resistance elements.

The exercise device may include or be communicably coupled to various devices for controlling the exercise device and providing feedback to a user. For example, the exercise device may connect to and communicate with a computing device, such as a smartphone, tablet, laptop, smart television, etc. to enable the user to select a workout and/or exercise, adjust exercise parameters (e.g., a range of motion of the exercise, a speed of the exercise, a load, or any other similar parameter), view historical performance data, and the like. In certain implementations, such computing devices may also facilitate streaming of video or other multimedia content (e.g., classes) to guide a user's exercise or to facilitate participation in streaming or real-time interactive classes and competitions. In still other implementations, the exercise platform may be used in conjunction with a gaming platform or other computing device capable of running games or similar interactive software. The exercise device may also receive control information or control instructions from such computing devices.

The exercise device or a device locally connected with the exercise device may also communicate, over a network, with a server or servers that may send and receive information for controlling the device, information about a particular user, and the like. Exercise devices of this disclosure may also connect to and communicate with each other or to other computing devices (e.g., the server) over a network, which may include the Internet as well as local networks and combinations of the same. In one implementation, a cloud-based platform may interact with exercise devices of this disclosure and associated user computing devices (e.g., a user's smartphone) to distribute resistance profiles, which may include control instructions, for exercises, store and update user information including information representative of user performing an exercise, and present tracking information to users and personnel such as gym facility managers, personal trainers, physiotherapists, and others who may be working with a user. The cloud-based computing platform further enables the generation, updating, and storage of content for use with the exercise device including, but not limited to, resistance profiles, workout plans, multimedia content, and the like.

FIG. 1 is an isometric view of an exercise platform 100 according to one implementation of the present disclosure. FIG. 2 is an isometric view of exercise platform 100 with an exterior housing 102 and other external components removed to illustrate various internal components of the exercise platform 100. Referring to FIG. 1 , exercise platform 100 includes a housing 102 having a top 104 through which a cable 106 passes. In certain implementations, top 104 includes an aperture 120 within which a fairing 122 or similar guide element is disposed to permit multi-directional retraction and extension of cable 106. As shown, cable 106 may end in a handle 108; however, in other implementations, cable 106 ends in a strap, grip, belt, rope loop, or similar component to facilitate performance of different exercises. Moreover, the cable may be coupled with other various attachments to facilitate various possible exercises. Handle 108 may be permanently fixed to cable 106 or may be removable such that handle 108 may be swapped with one or more alternative components. For example, as shown in FIG. 1 , handle 108 couples to cable 106 by a carabiner 107. Carabiner 107 is just one example of a structure for easily coupling handle 108 to cable 106 and this disclosure contemplates that any suitable coupling mechanism may be used to join handle 108 to cable 106. During performance of an exercise, a user extends cable 106 and/or resists retraction of cable 106 with resistance provided by a motor 110 (shown in FIG. 2 ) disposed within housing 102 and coupled to cable 106, e.g., by a cable pulley 112 (also shown in FIG. 2 ) coaxially mounted to motor 110, and about which the cable is spooled and unspooled during operation. In certain implementations, cable pulley 112 may be a separate component coupled to a rotating component (e.g., an axle or rotating casing) of motor 110. Alternatively, cable pulley 112 may be integrally formed with the rotating component of motor 110.

Exercise platform 100 may include a control system (including, e.g., a motor controller, a motor drive, a microprocessor, and/or other related components) for controlling motor 110 and the resistance provided by motor 110. Exercise platform 100 may further include various sensors for providing feedback to the control system to facilitate control of motor 110. For example, in certain implementations, exercise platform 100 may include one or more of a current sensor, a position sensor (e.g., an encoder), an accelerometer, or other sensors for measuring parameters related to motor performance, which can be used in the control and operation of motor 110. In certain implementations, force sensors (e.g., load cells, strain gauges, etc.) incorporated into exercise platform 100 may also supply additional feedback for controlling motor 110, assessing user performance, energizing the device, and providing information to the exercise device or other systems, among other things.

Motor 110 and the associated motor control components may provide a variety of different resistance profiles depending on the exercise being performed, settings provided by the user, a workout plan of the user, and the like. For example, motor 110 may provide constant resistance over a complete range of motion for an exercise. As another example, motor 110 may provide a first resistance during a first phase of an exercise (e.g., a concentric phase of the exercise) and a second, different, resistance during a second phase of the exercise (e.g., an eccentric phase of the exercise). As yet another example, motor 110 may vary resistance over any or all phases of an exercise. The system may provide, e.g., through a user interface provided on a smart phone or tablet, an interface through which a user may set a starting point for an exercise, which may correspond to an amount of retraction (unspooling) of the cable above which the resistance force is applied and below which a nominal retraction force is applied.

By way of example, a user of exercise platform 100 may perform a squat motion while holding handle 108 in front of his or her body and standing on top 104. In one example, motor 110 may supply constant resistance (e.g., 100 lbs. of resistance) during both the eccentric (descending) and concentric (ascending) phases of the squat. In another example, motor 110 may supply a first resistance (e.g., 50 lbs. of resistance) during the eccentric phase of the squat but subsequently increase resistance (e.g., to 100 lbs.) during the concentric phase of the squat, thereby emphasizing the concentric phase. In yet another example, motor 110 may supply relatively low resistance when the user is at depth but supply increased resistance as the user reaches an upright position. Among other things, such varying of resistance may encourage a full and safe range of motion by reducing load in typically problematic points of the exercise. As a final and additional non-limiting example, motor 110 may supply a random or otherwise dynamically varying resistance (e.g., a “noisy” load that ranges from 40 lbs. to 60 lbs.) over some or all of the squat motion, thereby forcing the user to recruit a broader range of stabilizing muscles than if a constant resistance were to be applied by motor 110.

As illustrated in FIG. 1 , exercise platform 100 may include various other features. For example, housing 102 may include a grip 124 or similar feature to facilitate transportation of exercise platform 100. Exercise platform 100 may also include an electronics panel 126. Among other things, electronics panel 126 may include one or more ports to facilitate communication between 100 and other computing devices, a display (e.g., an LED or LCD screen) for providing information to a user, one or more lights to indicate status or operation of exercise platform 100 (e.g., an “ON/OFF” light indicator), one or more switches (e.g., a power switch), and the like. In at least certain implementations, exercise platform 100 may include a battery such that exercise platform 100 may be optionally operated without being plugged into a wall outlet or other external power source. In such cases, exercise platform 100 may further include a charging port or similar plug (not illustrated) to facilitate charging of the battery or otherwise powering exercise platform 100.

Referring to FIG. 2 , an isometric view of exercise platform 100 is provided with portions of housing 102 removed for clarity and to reveal internal components of exercise platform 100. As previously discussed, exercise platform 100 includes motor 110, which may be coupled to and drive a cable pulley 112 to control retraction and extension of cable 106. Exercise platform 100 includes an internal frame 114 that provides structural integrity to exercise platform 100 and structure for coupling to and supporting internal components of exercise platform 100. As illustrated, internal frame 114 includes a web 116 extending transversely through base 102. In at least certain implementations, motor 110 is coupled to and supported by web 116 such that cable pulley 112 aligns with aperture 120 of top 104. Internal frame 114 may include additional elements, such as transverse member 118 to provide additional structural integrity and/or mounting locations for other components of exercise platform 100.

FIG. 3 illustrates an example operation environment 300 including exercise platform 100. In at least certain implementations, exercise platform 100 communicates with one or more external computing devices, such as computing device 302. Although illustrated as a smartphone, computing device 302 may be any suitable computing device capable of connecting to and communicating with a communication module or similar communication component of exercise platform 100 through a wired or wireless connection.

Computing device 302 may execute an application for interfacing with and controlling exercise platform 100. For example, the application executed on computing device 302 may permit a user of computing device 302 to change a resistance of exercise platform 100 or a resistance profile executed by exercise platform 100. In other implementations, the application may allow the user to select an exercise or workout routine the automatically reconfigures exercise platform 100 as the user progresses through the exercise or workout routine. During operation, exercise platform 100 may transmit data, such as position data for cable 106, such that the application may track successful completion of exercises and workout routines by the user.

One or both of exercise platform 100 and computing device 302 may further communicate with a fitness platform 304 over a network 306, such as the Internet. Among other things, fitness platform 304 may provide a portal, website, application data, cloud computing environment, etc. through which a user of computing device 302 may access information and content related to use of the exercise device 100. For example, fitness platform 304 may include a repository or similar source of video, text, or other content directed to use of exercise platform 100 and/or fitness and exercise more generally. As another example, fitness platform 304 may support user accounts such that a user of computing device 302 and exercise platform 100 may track their historic performance and improvement, create and track workouts and fitness plans, participate in leaderboards and other community-related features, and the like. In at least certain implementations, fitness platform 304 may facilitate real-time classes, competitions, and similar group activities that simultaneously support multiple users of exercise devices. For example, in the context of a class, a live streamed video of an instructor may be provided by fitness platform 304 to multiple users and each exercise device (or a related/connected computing device) may in turn provide exercise data (e.g., resistance level, speed, rep completion, etc.) for maintaining and populating a class leaderboard or similar display of participant performance.

FIG. 4 is a system diagram including an exercise device 400, a locally connected computing device 402 and a network connected remote computing device 404. The exercise device may be the exercise device discussed above with regard to FIGS. 1-3 or any other form of exercise device that include a controllable motor providing resistance force, which may include a controllable retraction rate and/or resistance, and against such resistance force a user may perform various forms of exercises. The exercise device includes a motor 406 and a controller 408. Depending on any particular implementation, various aspects of motor control may be provided in a discrete computing unit, e.g., the controller, or distributed among more than one computing unit. Regardless, the exercise device includes a controller that controls the operation of the motor so that it provides an instructed resistance force. The exercise device may also include an encoder or other mechanism to track the amount of cable 412 spooled or unspooled, and/or the position of the cable relative to the motor or outer housing surface depending on perspective. The exercise device may also include some form of memory where instructions may be stored, various aspects of motor control stored, and/or user information and user metrics stored permanently or transiently. In that regard, the exercise device may sense and track user information during an exercise such as the number of repetitions of any particular exercise, the particular exercised performed, the rate at which the cable is pulled by the user, the amount of force exerted by the user against the instructed force of the motor, and the like. In some instances, the exercise device or the local device may also receive signals for other devices, such as a heart rate sensor, and use that information. Some attributes may be directly sensed, e.g., rate, whereas other attributes may be calculated, e.g., total energy expenditure during one repetition or across a full set of repetitions. As to computed attributes, these may be done locally on the exercise device or metrics transmitted to the locally connected computing device or remotely connected computing device where an attribute is calculated or otherwise obtained from attributes measured at the exercise device. Besides calculation, it is also possible for measured attributes to be used to look-up information.

The system also includes some form of locally connected computing device 402. The locally connected computing device may be connected wirelessly or wired through various possible ways such as Bluetooth, Wi-Fi, various universal serial bus (USB) protocols, and the like. The locally connected computing device, as noted above, may be a smartphone, tablet, laptop, gaming platform, etc. While discussed in the context of a locally connected device, it is also possible to integrate the functions of the local computing device within the exercise device or integrate a computing device with a display in the exercise device.

The local computing device connects with both the exercise device and a remote computing platform 404. The remote computing platform may be various possible types of computing device and in communication via a local network, which may include a peer to peer or Bluetooth connection or may be over other form of networks or communication. The remote computing platform may include a server 416, in one example, and may be accessed over a network 414, where communications to and from the remote device may traverse various networks and may include aspects of the Internet. The server may include multiple servers, may be a dedicated hardware device or involve virtual components. The system may also include multiple servers, some of or all of which may be in cloud environments. For ease of discussion, this application references a server but it should be appreciated and the term encompass one or more servers or other computing devices providing the functionality discussed herein, and which may be accessed by way of a network.

The server connects with a remote storage 418, which may be a database or other remote storage platform. The remote storage includes user profile information 420 and an exercise library 422. Remote storage may be separate or integrated with the remote computing platform. A user profile includes information pertaining to the user and information pertaining to the user's historical performance of various exercises. The exercise library includes various exercise definitions for the exercise device. An exercise definition may include a force field, a rate field, a repetitions field, and starting and ending fields, among other fields. Each of these fields may be settable. The force field refers generally to the amount of resistance the motor will apply for the exercise. While the term “force” is used herein, it is meant to refer generally to any metric by which the amount of resistance the motor applies and the user experiences in any given exercise. The system may be configured to control, measure or compute power, rate, velocity, acceleration, and weight, alone or in combination, and/or other metrics. In some instances, the force may be dynamically applied, and the definition will provide for the dynamic application of the force. The rate field refers to situations where the rate of retraction of the cable is controlled, which may also be settable. The applied resistance may also be a function of cable rate, velocity and/or acceleration and hence the rate may be implicit in the force. The number of repetitions field refers to the number of repetitions that the user performs the exercise, which may be preset and/or based on user profile information, and/or settable at the local device through a graphical user interface. Finally, some exercises may be performed between a starting and ending location pertaining to a given exercise. These locations may be obtained from a user profile and/or settable by a user before performing the exercise. So, for example, prior to performing an arm curl exercise in a standing position, the resistance may be set to 25 pounds, and the starting position being based on a user standing with their arm (one arm curl exercise) or arms (two arm curl exercise) at their sides, and the ending position set with their arms bent at the elbow and hands adjacent their chest. As can be understood, the starting and ending position will vary for different users and different exercises. The exercise definitions include these settable fields, and actually setting the values for the fields to make those values available for control of the exercise device may occur at various stages. In one example, the user profile and/or exercise definition may include default settings for each exercise. These default settings may be based on a user going through a set-up routine to set values, be based on values being set as a user actually uses the device and sets the values or be based on initial preset values that can be adjusted. As will be discussed further below, the values may be set at other stages of operation, as well.

Exercise definitions may also be associated with training content. For example, video content may be stored in the library and uploaded to the local computing platform for viewing. Video content may also be in the form of a link to a content location on a third-party platform or a separate library of the remote computing platform where a video may be played through an application running on the local computing platform or directly from a location at the link. Other training content such as still images or text content may also be associated with the exercise definitions.

The exercise definitions may also include other information such as the exercise type (e.g., cardiovascular, high intensity threshold training (HITT), strength, etc.), the muscle targeted by the exercise (e.g., biceps, triceps, abdominals, etc.), which may be captured in a primary muscle and secondary muscle field, and which may include more than one muscle if a given exercise targets more than one primary or secondary muscle, the more general muscle group or body part or area targeted by the exercise (arms, chest, core, etc.), an attachment needed for the exercise (e.g., handle, bench, rope, etc.), among other information. The exercise definition may also include information including images, audio and/or video depicting proper performance of the exercise. The images, audio and/or video may be in the form of a link to such information provided in a distinct storage and accessible by the local device at the linked location.

FIG. 5 is a system diagram including components referenced above with regard to FIGS. 1 - 4 and providing additional system components and information. Referring now to FIG. 6 as well as other figures including FIGS. 4 and 5 , one method according to the present disclosure is as follows. To begin, a request may be received at the remote server (operation 610). The request will be for a set of exercise controls related to exercises to be performed on the motorized exercise device. The method is described as being initiated by a request, but it may be initiated in other ways. For example, the request may involve a scheduled event that runs each day or on some schedule automatically on the remote computing platform. The request may also involve a signal from the local computing platform, such as when an application is opened, or may be from the device 400 when it powers up or otherwise such that such actions are considered a request. The request may include a user identification although it is also possible that the method be practiced without reference to a particular user. When the request includes user information, it may be used to access the user profile and tailor exercise definitions based on the user.

Responsive to the request or at any time prior to the request, the generator generates exercise instructions that are conveyed to the requesting the device. The instructions are generated beginning with a template 500. The template includes fields to access exercise definitions 502 matching those fields. So, rather than directly accessing particular exercise definitions, the template provides a set of criteria to select from preexisting exercise definitions and generate exercise instructions for a set of exercises transmitted to the local device and to control the exercise device. The relation between the template and the exercise definitions may be based on any number of different factors. In one possible arrangement, a different set of related exercises are defined on a daily basis through a unique template for each day. For any given day, a generator 504 accesses the corresponding template and uses the various fields therein to access matching exercises and generate instructions for those exercises. The fields of the template used to select a matching exercise may be based on being the same exercise type, targeting a particular muscle or body part, and the like. So, for example, a set of HITT exercises may be defined for Monday, a set of targeted core exercises defined on Tuesday and a set combining HITT and strength defined on Wednesday, and so on. The template for any given day will be defined based on the arrangement of exercises conforming to whatever exercise set is defined for that day. In the simple example of a set of HITT exercises, the template may include some number of exercise templates for that day. While examples are set out referencing the generation of exercise instructions on a daily basis, such instructions may be generated on other schedules, in response to some direct request, and otherwise as discussed herein.

FIG. 7 is an example of a portion of a template where the particular portion shown corresponds to a single exercise that will be selected from the stored exercises based on the defined fields of the portion of the template. A template may have several additional such portions with each portion pertaining to a different exercise, and all of the exercises of the template corresponding to a single exercise session fora user. A distinct portion of the overall daily template will include fields for exercise type (e.g., Full Body Strength: Upper Focused), primary muscle (e.g., Arms, Shoulders, Chest, Back) and/or secondary muscle, which may also more generally correspond to a muscle group or body part (e.g., upper body and full body), attachment, etc., corresponding to fields of the exercise definitions set out in the library. A template may include other information, as well, including the number of rounds or times the exercise is to be performed (e.g., 2), the amount of rest between rounds (e.g., 30 seconds), the amount of rest when both rounds are complete and before initiating whatever exercise follows (e.g., 60 seconds), the difficult of the exercise (e.g., between 1 and 3, with 1 being the easiest and three the hardest), and the number of repetitions of the particular exercise during each round (e.g., 8).

Using fields in the template, the system (e.g., the generator) will then select matching exercise definitions (operation 620). FIG. 8 illustrates some example exercise definitions, noting that the illustrated fields are those used for matching an exercise to a template definition, and additional fields defining a given exercise are discussed herein. The exercise definitions may include numerous different fields that define attributes of the exercise, and by which the generator may use the fields of the template to select matching exercise from the library. The available exercise definitions matching any discrete portion of the template will depend on the number of matching fields between the exercise definition and template. Hence, the more specific fields are defined in the template, the fewer number of exercises will match the template. Similarly, when fewer fields are defined in a template, more exercises will match.

Selection of the matching exercises may be done in a variety of ways. For example, selection may be random. Selection may be done in order, and information as to what exercises have been selected historically saved in the user profile. Selections may be based on user preferences, or recorded likes or dislikes that a user may enter through the GUI when an exercise is complete. Regardless, the generator selects exercises based on the template, and transmits information to the local device.

The generator transmits exercises, matching those defined in the template, to the local device (operation 630). It is possible to provide all of the exercise definitions corresponding to a template or provide particular exercise definitions as the user performs the exercises and use feedback from the exercises to alter parameters of a given definition or even cause the generator to select alternative definitions. Nonetheless, exercise definition information is provided to the requesting device.

A given exercise definition provided to local device provides information for controlling the motor of the exercise device. The information may include actual motor control instructions or converted to motor control instructions at the exercise device itself or the locally connected computing device. So, for example, if a resistance field of a given exercise definition is 25 pounds, then the 25 pound definition is used to generate an instruction for controlling the motor to provide 25 pounds of resistance force. If there is a starting position included with the instructions, then 25 pounds of force is applied at the starting position. Below the starting position, the motor may apply some nominal retraction force and the cable retracted at a nominal rate when it is not fully retracted, e.g., to return the cable to a fully retracted position when an exercise is complete.

Various other information of an exercise definition may be used in different ways. For example, if an exercise definition includes a link to a video, the remote computing device may link to the video stored at some network location and play the video on a display of the remote device. The video may also be downloaded should the exercise device be positioned in a place where the local device does not have a network connection or otherwise. The local device may also include some form of graphical user input (GUI), mentioned previously, whereby a user might adjust various attributes of any given exercise definition prior to or after completing the exercise on the exercise device. For example, if the exercise definition is predefined with a resistance force, the GUI may display a field whereby the user may change the resistance force, and the changed resistance force then used to generate the motor control instructions. If a starting or ending position is required, the GUI may include fields by which a user is able to set those locations. For example, in a set-up phase of operation, the user may extract the cable to starting position, which is tracked by the exercise device through the encoder, discussed above, and select the starting position through the GUI. The local device may then communication with the exercise device to obtain the current position of the cable and use that current position to define the starting position of the exercise. The starting position, for the particular exercise definition, may also be shared with the user profile and stored therein so that any subsequent execution of the exercise, the exercise definition will include the previously defined starting position. In such a situation, the generator will pull the exercise definition from the library, and any previously defined attributes of the definition form the user profile will be used by the generator to transmit instructions to the local device. The same procedure may be used to define an ending position should there be an ending position of the template.

When a user performs an exercise, the exercise device may share additional information with the local device and/or the remote device. For example, the exercise device may measure the rate at which the user extracts the cable against the motor resistance force, and the rate information stored at the exercise device and shared with the local computing device. The information may be shared when an exercise is complete or in real-time. The information may also be accessed from exercise device storage during subsequent exercise sessions or otherwise. Continuing with the example of rate information, it may be shared when an exercise is complete or during the exercise, and the rate information used to adjust the exercise. For example, if the user is extracting the cable at a very high rate, it may indicate that the resistance is set too low. Exceeding a threshold may be used to prompt the user to change the resistance or used by the remote device to automatically increase the resistance during the current exercise, e.g., in real time, or for a subsequent repetition of the same exercise should there be a subsequent repletion. Conversely, if the rate is excessively low or the user does not reach the set number of repetitions for the exercise, a prompt to reduce the resistance or automatic reduction of the resistance may be performed by the exercise device or the remote device.

Performance information may also be used to compute various information such as calories burned or other information. Performance information may also be shared with the remoted device and used to update the user profile. The specific exercises performed may also be tracked and then used by a subsequent time to select exercises to populate the template.

Referring to FIG. 9 , a detailed description of an example computing system 900 having one or more computing units that may implement various systems and methods discussed herein is provided. The computing system 900 may be part of a controller, may be in operable communication with various implementation discussed herein, may run various operations related to the method discussed herein, may run offline to process various data for characterizing a battery, and may be part of overall systems discussed herein. The computing system 900 may process various templates, exercise definitions discussed herein and/or may provide control instructions based thereon. For example, the computing system may implement aspects of the remoted computing platform, the local computing device, and/or aspects of the exercise device. The computing system 900 may also be applicable to, for example, the controller discussed with respect to the various figures and may be used to implement the various methods described herein. It will be appreciated that specific implementations of these devices may be of differing possible specific computing architectures, not all of which are specifically discussed herein but will be understood by those of ordinary skill in the art. It will further be appreciated that the computer system may be considered and/or include an ASIC, FPGA, Microcontroller, or other computing arrangement. In such various possible implementations, more or fewer components discussed below may be included, interconnections and other changes made, as will be understood by those of ordinary skill in the art.

The computer system 900 may be a computing system that is capable of executing a computer program product to execute a computer process, which may be involved in creating the template, the generator's use of the template to select exercise definitions, the communication of exercise definitions to the local computing device, the practicing of various methods discussed herein, the communication of control information to the exercise device, and the measurement and communication of various user information, among other thigns. Data and program files may be input to the computer system 900, which reads the files and executes the programs therein. Some of the elements of the computer system 900 are shown in FIG. 9 , including one or more hardware processors 902, one or more data storage devices 904, one or more memory devices 906, and/or one or more ports 908-912. Additionally, other elements that will be recognized by those skilled in the art may be included in the computing system 900 but are not explicitly depicted in FIG. 9 or discussed further herein. Various elements of the computer system 900 may communicate with one another by way of one or more communication buses, point-to-point communication paths, or other communication means not explicitly depicted in FIG. 9 .

The processor 902 may include, for example, a central processing unit (CPU), a microprocessor, a microcontroller, a digital signal processor (DSP), and/or one or more internal levels of cache. There may be one or more processors 902, such that the processor 902 comprises a single central-processing unit, or a plurality of processing units capable of executing instructions and performing operations in parallel with each other, commonly referred to as a parallel processing environment.

The presently described technology in various possible combinations may be implemented, at least in part, in software stored on the data stored device(s) 904, stored on the memory device(s) 906, and/or communicated via one or more of the ports 908-912, thereby transforming the computer system 900 in FIG. 9 to a special purpose machine for implementing the operations described herein. Examples of the computer system 900 includes or may be implemented in various possible mobile communication/computing environment including mobile phones, tablets, and laptops, personal computers, multimedia consoles, gaming consoles, set top boxes, embedded computing and processing systems, and the like.

The one or more data storage devices 904 may include any non-volatile data storage device capable of storing data generated or employed within the computing system 900, such as computer executable instructions for performing a computer process, which may include instructions of both application programs and an operating system (OS) that manages the various components of the computing system 900. The data storage devices 904 may include, without limitation, magnetic disk drives, optical disk drives, solid state drives (SSDs), flash drives, and the like. The data storage devices 904 may include removable data storage media, non-removable data storage media, and/or external storage devices made available via a wired or wireless network architecture with such computer program products, including one or more database management products, web server products, application server products, and/or other additional software components. Examples of removable data storage media include Compact Disc Read-Only Memory (CD-ROM), Digital Versatile Disc Read-Only Memory (DVD-ROM), magneto-optical disks, flash drives, and the like. Examples of non-removable data storage media include internal magnetic hard disks, SSDs, and the like. The one or more memory devices 906 may include volatile memory (e.g., dynamic random access memory (DRAM), static random access memory (SRAM), etc.) and/or non-volatile memory (e.g., read-only memory (ROM), flash memory, etc.).

Computer program products containing mechanisms to effectuate the systems and methods in accordance with the presently described technology may reside in the data storage devices 904 and/or the memory devices 906, which may be referred to as machine-readable media. It will be appreciated that machine-readable media may include any tangible non-transitory medium that is capable of storing or encoding instructions to perform any one or more of the operations of the present disclosure for execution by a machine or that is capable of storing or encoding data structures and/or modules utilized by or associated with such instructions. Machine-readable media may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more executable instructions or data structures.

In some implementations, the computer system 900 includes one or more ports, such as an input/output (I/O) port 908, a communication port 910, and a sub-systems port 912, for communicating with other computing, network, or vehicle devices. It will be appreciated that the ports 908-912 may be combined or separate and that more or fewer ports may be included in the computer system 900. The I/O port 908 may be connected to an I/O device, or other device, by which information is input to or output from the computing system 900. Such I/O devices may include, without limitation, one or more input devices, output devices, and/or environment transducer devices.

In one implementation, the input devices convert a human-generated signal, such as, human voice, physical movement, physical touch or pressure, and/or the like, into electrical signals as input data into the computing system 900 via the I/O port 908. In some examples, such inputs may be distinct from the various system and method discussed with regard to the preceding figures. Similarly, the output devices may convert electrical signals received from computing system 900 via the I/O port 908 into signals that may be sensed or used by the various methods and system discussed herein. The input device may be an alphanumeric input device, including alphanumeric and other keys for communicating information and/or command selections to the processor 902 via the I/O port 908. The input device may be another type of user input device including, but not limited to: direction and selection control devices, such as a mouse, a trackball, cursor direction keys, a joystick, and/or a wheel; one or more sensors, such as a camera, a microphone, a positional sensor, an orientation sensor, a gravitational sensor, an inertial sensor, and/or an accelerometer; and/or a touch-sensitive display screen (“touchscreen”). The output devices may include, without limitation, a display, a touchscreen, a speaker, a tactile and/or haptic output device, and/or the like. In some implementations, the input device and the output device may be the same device, for example, in the case of a touchscreen.

The environment transducer devices convert one form of energy or signal into another for input into or output from the computing system 900 via the I/O port 908. For example, an electrical signal generated within the computing system 900 may be converted to another type of signal, and/or vice-versa. In one implementation, the environment transducer devices sense characteristics or aspects of an environment local to or remote from the computing device 900, such as user force, repetitions, heart rate, light, sound, temperature, pressure, magnetic field, electric field, chemical properties, physical movement, orientation, acceleration, gravity, and/or the like. Further, the environment transducer devices may generate signals to impose some effect on the environment either local to or remote from the example computing device 900, such as, physical movement of some object (e.g., a mechanical actuator), heating or cooling of a substance, adding a chemical substance, and/or the like.

In one implementation, a communication port 910 may be connected to a network by way of which the computer system 900 may receive network data useful in executing the methods and systems set out herein as well as transmitting information and network configuration changes determined thereby. For example, charging protocols may be updated, battery measurement or calculation data shared with external system, and the like. The communication port 910 connects the computer system 900 to one or more communication interface devices configured to transmit and/or receive information between the computing system 900 and other devices by way of one or more wired or wireless communication networks or connections. Examples of such networks or connections include, without limitation, Universal Serial Bus (USB), Ethernet, Wi-Fi, Bluetooth®, Near Field Communication (NFC), Long-Term Evolution (LTE), and so on. One or more such communication interface devices may be utilized via the communication port 910 to communicate with one or more other machines, either directly over a point-to-point communication path, over a wide area network (WAN) (e.g., the Internet), over a local area network (LAN), over a cellular (e.g., third generation (3G), fourth generation (4G) or fifth generation (5G)) network, or over another communication means. Further, the communication port 910 may communicate with an antenna for electromagnetic signal transmission and/or reception. In some examples, an antenna may be employed to receive Global Positioning System (GPS) data to facilitate determination of a location of a machine or another device.

The computer system 900 may include a sub-systems port 912 for communicating with one or more systems related to a device being charged according to the methods and system described herein to control an operation of the same and/or exchange information between the computer system 900 and one or more sub-systems of the device. Examples of such sub-systems of a vehicle, include, without limitation, motor controllers and systems, battery control systems, and others.

The system set forth in FIG. 9 is but one possible example of a computer system that may employ or be configured in accordance with aspects of the present disclosure. It will be appreciated that other non-transitory tangible computer-readable storage media storing computer-executable instructions for implementing the presently disclosed technology on a computing system may be utilized.

In the present disclosure, the methods disclosed may be implemented as sets of instructions or software readable by a device. Further, it is understood that the specific order or hierarchy of steps in the methods disclosed are instances of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the method can be rearranged while remaining within the disclosed subject matter. The accompanying method claims present elements of the various steps in a sample order, and are not necessarily meant to be limited to the specific order or hierarchy presented.

The described disclosure may be provided as a computer program product, or software, that may include a non-transitory machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). The machine-readable medium may include, but is not limited to, magnetic storage medium, optical storage medium; magneto-optical storage medium, read only memory (ROM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or other types of medium suitable for storing electronic instructions.

Embodiments of the present disclosure include various steps, which are described in this specification. The steps may be performed by hardware components or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor programmed with the instructions to perform the steps. Alternatively, the steps may be performed by a combination of hardware, software and/or firmware.

Various modifications and additions can be made to the exemplary embodiments discussed without departing from the scope of the present invention. For example, while the embodiments described above refer to particular features, the scope of this invention also includes embodiments having different combinations of features and embodiments that do not include all of the described features. Accordingly, the scope of the present invention is intended to embrace all such alternatives, modifications, and variations together with all equivalents thereof.

While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the disclosure. Thus, the following description and drawings are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding of the disclosure. However, in certain instances, well-known or conventional details are not described in order to avoid obscuring the description. References to one or an embodiment in the present disclosure can be references to the same embodiment or any embodiment; and, such references mean at least one of the embodiments.

Reference to “one embodiment” (or one example) or “an embodiment” (or example or examples) means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others.

The terms used in this specification generally have their ordinary meanings in the art, within the context of the disclosure, and in the specific context where each term is used. Alternative language and synonyms may be used for any one or more of the terms discussed herein, and no special significance should be placed upon whether or not a term is elaborated or discussed herein. In some cases, synonyms for certain terms are provided. A recital of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification including examples of any terms discussed herein is illustrative only and is not intended to further limit the scope and meaning of the disclosure or of any example term. Likewise, the disclosure is not limited to various embodiments given in this specification.

Without intent to limit the scope of the disclosure, examples of instruments, apparatus, methods and their related results according to the embodiments of the present disclosure are given below. Note that titles or subtitles may be used in the examples for convenience of a reader, which in no way should limit the scope of the disclosure. Unless otherwise defined, technical and scientific terms used herein have the meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. In the case of conflict, the present document, including definitions will control.

Additional features and advantages of the disclosure will be set forth in the description which follows, and in part will be obvious from the description, or can be learned by practice of the herein disclosed principles. The features and advantages of the disclosure can be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the disclosure will become more fully apparent from the following description and appended claims or can be learned by the practice of the principles set forth herein. 

What is claimed is:
 1. A method of controlling an exercise on a motorized exercise device comprising: at a remote computing device and in response to receiving a request from a local device associated with a motorized exercise device, accessing a first exercise template and a second exercise template, the first exercise template including a first plurality of fields associated with a first exercise, the second exercise template including a second plurality of fields associated with a second exercise; obtaining a first exercise definition from matching the first exercise template with a first of a plurality of predefined exercises; obtaining a second exercise definition from matching the second exercise template with a second of the plurality of predefined exercises; and providing the first exercise definition and the second exercise definition to the local device, the first exercise definition including at least one first parameter associated with a first resistance force that will be used to control a motor of the motorized exercise device when the first exercise is performed on the motorized exercise device, the second exercise definition including at least one second parameter associated with a second resistance force that will be used to control the motor of the motorized exercise device when the second exercise is performed on the motorized exercise device.
 2. The method of claim 1 wherein the at least one first parameter further comprises a first starting position of a cable of the motorized device where the first resistance force of the motor is applied based on the first starting position.
 3. The method of claim 2 wherein the at least one first parameter further comprises a first ending position of the cable, where the first resistance force is applied by the motor between the first starting position and the first ending position.
 4. The method of claim 2 wherein the at least one parameter further comprises a number of repetitions defining the number of times the motorized device will apply the first resistance force as a user executes the first exercise.
 5. The method of claim 1 further comprising providing access to content for the local device for the first exercise, the content related to performing the first exercise properly using the motorized exercise device.
 6. The method of claim 1 wherein the first plurality of fields for the first exercise template includes a first exercise type field and the second plurality of fields for the second exercise template includes a second exercise type field, the method further comprising selecting a combination of templates including the first template and the second template to generate a set of exercise definitions based on the first exercise type field and the second exercise type field.
 7. The method of claim 6 wherein the selection occurs according to a plan established by a user.
 8. The method of claim 7 wherein the plan includes a daily selection.
 9. An exercise device comprising: a motor controller in communication with an electric motor operably coupled with a cable to control a force required to retract the cable, the motor controller using control instructions from a computing device, the control instructions of an exercise definition for an exercise, the exercise definition including an instruction regarding a force required to extract the cable when performing the exercise, the control instructions generated from an exercise template including a plurality of fields associated with the exercise and used to select the exercise definition.
 10. The exercise device of claim 9 wherein the plurality of fields of the exercise template includes an exercise type.
 11. The exercise device of claim 9 wherein the computing device is a mobile phone, computing pad, laptop, desktop, or a smart watch.
 12. The exercise device of claim 9 wherein the computing device receives the control instructions of the exercise definition from a server by way of a network.
 13. The exercise device of claim 9 wherein the control instructions include a starting position of the cable of the motorized device where the force is applied based on the starting position.
 14. A method comprising: at a local device associated with a motorized exercise device including an electric motor operably coupled with a cable to control a force required to retract the cable, receiving a first exercise definition based on matching a first exercise template with one of a plurality of predefined exercises, the first exercise definition including at least one parameter associated with a first resistance force defined in the predefined exercise that will be used to control the electric motor of the motorized exercise device when the first exercise is performed using the motorized exercise device.
 15. The method of claim 14 further comprising receiving a second exercise definition from matching a second exercise template with a second of the plurality of predefined exercises, the second exercise template including a second plurality of fields associated with a second exercise, the second exercise definition including at least one second parameter associated with a second resistance force that will be used to control the electric motor of the motorized exercise device when the second exercise is performed on the motorized exercise device.
 16. The method of claim 15 further comprising providing the first exercise definition and the second exercise definition to the motorized exercise device.
 17. The method of claim 16 further comprising displaying performance data when the first exercise is performed on the motorized exercise device according to the first exercise definition.
 18. The method of claim 16 further comprising displaying a user interface whereby a user may enter a starting position used by the motorized device to control when the first resistance force is applied by the motor during the first exercise.
 19. The method of claim 14 wherein the at least one first parameter further comprises a first starting position of the cable where the first resistance force of the electric motor is applied based on the first starting position.
 20. The method of claim 19 wherein the at least one first parameter further comprises a first ending position of the cable, where the first resistance force is applied by the electric motor between the starting position and the ending position and wherein the at least one parameter further comprises a number of repetitions defining the number of times the motorized device will apply the first resistance force as a user executes the first exercise.
 21. The method of claim 15 wherein the first plurality of fields for the first exercise template includes a first exercise type field and the second plurality of fields for the second exercise template includes a second exercise type field, the remote computing device selecting a combination of templates including the first template and the second template to generate a set of exercises based on the first exercise type field and the second exercise type field. 